Modern computer systems include many different components coupled together to perform data processing, access information, and many other familiar tasks. Even when operating however, many components or portions thereof may not be needed to perform useful work. Oftentimes, these components can be placed into a low power state to reduce power consumption. These components, also referred to as devices, could be a specific chip, a processor, or any other hardware entity that consumes power. Also, a single chip such as a processor or a system-on-a-chip (SoC) can controllably place one or more of its components into a low power state.
To aid in analysis of power consumption, a power profile, which is a timeline of a device's power state, can be determined. In many systems, to determine a device's power state, a processor must be in a non-low power state to perform instructions or other operations to obtain the power profile information. That is, profiling applications that execute on a system being profiled operate by scheduling an event (e.g., an interrupt or a timer). When the event occurs, the operating system calls the application to collect the information necessary to describe the behavior it is profiling. However, by forcing a processor to be in a fully powered state to obtain this information, the goal of reducing power consumption is defeated. That is, this periodic collection of power information about a platform causes additional power to be used, and furthermore distorts the power behavior of the platform.